package com.xd.core.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 还款计划表
 * </p>
 *
 * @author ZX
 * @since 2025-02-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="RepaymentSchedule对象", description="还款计划表")
@Accessors(chain = true)
public class RepaymentInsuranceSchedule implements Serializable {

    @ApiModelProperty(value = "id")
    private Integer id;

    @ApiModelProperty(value = "应还款日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date repaymentDate;

    @ApiModelProperty(value = "还款状态（0待还款 1已还款 2已逾期 3提前还款 4提前结清）")
    private String status;

    @ApiModelProperty(value = "还款计划表创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "还款期数")
    private Integer installmentNumber;

    @ApiModelProperty(value = "本期应还金额(单位元)")
    private BigDecimal amount;

    @ApiModelProperty(value = "本期应还本金")
    private BigDecimal principal;

    @ApiModelProperty(value = "应还本期利息")
    private BigDecimal interest;

    @ApiModelProperty(value = "待还本期本金")
    private BigDecimal principalTodo;

    @ApiModelProperty(value = "待还本期利息")
    private BigDecimal interestTodo;

    @ApiModelProperty(value = "进件id")
    private Integer incomingId;

}
